<?php
/**
* 名称：全局预载类。
*/
abstract class Controller_Public_Preload extends Controller{
    /**
    * @const string 模板载入模式标量之常规。
    */
    const TEMPLATE_PRELOAD_MODE_COMMON='common';

    /**
    * @const string 模板载入模式标量之新闻中心左。
    */
    const TEMPLATE_PRELOAD_MODE_NEWS_LEFT='left';

    /**
    * @const string 模板载入模式标量之常规左。
    */
    const TEMPLATE_PRELOAD_MODE_LEFT='left';

    /**
    * @const string 模板载入模式标量之帐户中心常规。
    */
    const TEMPLATE_PRELOAD_MODE_ACCOUNT_COMMON='account_common';

    /**
    * @const string 模板载入模式标量之帐户中心无左导航。
    */
    const TEMPLATE_PRELOAD_MODE_ACCOUNT_NOLEFT='account_noleft';

    /**
    * 描述：模板载入模式模式标量。
    * @var     string
    * @access  protected
    */
    protected $TemplatePreLoadMode=NULL;

    /**
    * 描述：全域构造方法,预载相关程式。
    * @access public
    * @return void
    */
    public function __Construct($method){
        $this->Rendering($this->TemplatePreLoadMode);
        //~
        parent::__Construct($method);
    }

    /**
    * 描述：根据指定模板预载模式执行程式。
    * @access protected
    * @return void
    */
    protected function Rendering($mode){
        switch($mode){
            case self::TEMPLATE_PRELOAD_MODE_COMMON:
                $this->Rendering_Header();
                $this->Rendering_Footer();
            break;
            case self::TEMPLATE_PRELOAD_MODE_LEFT:
                $this->Rendering_Header();
                $this->Rendering_Footer();
                $this->Rendering_Left();
            break;
            case self::TEMPLATE_PRELOAD_MODE_NEWS_LEFT:
                $this->Rendering_Header();
                $this->Rendering_Footer();
                $this->Rendering_NewsLeft();
            break;
            case self::TEMPLATE_PRELOAD_MODE_ACCOUNT_COMMON:
                $this->Rendering_AccountHeader();
                $this->Rendering_AccountFooter();
                $this->Rendering_AccountLeft();
            break;
            case self::TEMPLATE_PRELOAD_MODE_ACCOUNT_NOLEFT:
                $this->Rendering_AccountHeader();
                $this->Rendering_AccountFooter();
            break;
        }
    }

    /**
    * 描述：模板预行程式之全局头部。
    * @access private
    * @return void
    */
    private function Rendering_Header(){
        echo 'rendering.global.header','<br/>';
    }

    /**
    * 描述：模板预行程式之全局底部。
    * @access private
    * @return void
    */
    private function Rendering_Footer(){
        echo 'rendering.global.footer','<br/>';
    }

    /**
    * 描述：模板预行程式之全局左部。
    * @access private
    * @return void
    */
    private function Rendering_Left(){
        echo 'rendering.global.left','<br/>';
    }

    /**
    * 描述：模板预行程式之全局右部。
    * @access private
    * @return void
    */
    private function Rendering_Right(){
        echo 'rendering.global.right','<br/>';
    }

    /**
    * 描述：模板预行程式之新闻中心左部。
    * @access private
    * @return void
    */
    private function Rendering_NewsLeft(){
        echo 'rendering.news-global.left','<br/>';
    }

    /**
    * 描述：模板预行程式之新闻中心右部。
    * @access private
    * @return void
    */
    private function Rendering_NewsRight(){
        echo 'rendering.news-global.right','<br/>';
    }

    /**
    * 描述：模板预行程式之帐户中心头部。
    * @access private
    * @return void
    */
    private function Rendering_AccountHeader(){
        echo 'rendering.account-global.header','<br/>';
    }

    /**
    * 描述：模板预行程式之帐户中心底部。
    * @access private
    * @return void
    */
    private function Rendering_AccountFooter(){
        echo 'rendering.account-global.footer','<br/>';
    }

    /**
    * 描述：模板预行程式之帐户中心左部。
    * @access private
    * @return void
    */
    private function Rendering_AccountLeft(){
        echo 'rendering.account-global.left','<br/>';
    }
}
